﻿// -----------------------------------------------------------------------
// <copyright file="GraphicsHelperContracts.cs" company="Microsoft">
// Some contracts for the IGraphicsHelper interface.
// </copyright>
// -----------------------------------------------------------------------

/*
 * Author: Barbara Carboni, Mikkel Thordal Andersen, Juan Mompean Esteban
 * Created: 13-12-2011
 */
namespace ITU_vs_Zombies.Graphics
{
    using System.Diagnostics.Contracts;

    using ITU_vs_Zombies.Game;

    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Graphics;

    /// <summary>
    /// Some contracts for the IGraphicsHelper interface.
    /// </summary>
    [ContractClassFor(typeof(IGraphicsHelper))]
    public abstract class GraphicsHelperContracts : IGraphicsHelper
    {
        /// <summary>
        /// The draw.
        /// </summary>
        /// <param name="spriteBatch">
        /// The sprite Batch.
        /// </param>
        public void Draw(SpriteBatch spriteBatch)
        {
            Contract.Requires(spriteBatch != null);
        }

        /// <summary>
        /// The load content.
        /// </summary>
        public void LoadContent()
        {
            Contract.Requires(Client.Content != null);
            Contract.Requires(Client.GraphicsDevice != null);
        }

        /// <summary>
        /// The update.
        /// </summary>
        /// <param name="gameTime">
        /// The game Time.
        /// </param>
        /// <param name="position">The position</param>
        public void Update(GameTime gameTime, Vector2 position)
        {
            Contract.Requires(gameTime != null);
        }
    }
}
